package com.hyd.tweet.twitter.command;

import com.hyd.tweet.twitter.StatusFormatter;
import twitter4j.Status;
import twitter4j.TwitterException;

import java.util.Arrays;
import java.util.List;

/**
 * (description)
 *
 * @author yiding.he
 */
public class DeleteTweetCommand extends Command {

    @Override
    public List<String> processCommand() throws TwitterException {
        if (arguments.isEmpty()) {
            return Arrays.asList("——没有指定要删除的推编号（编号在每个推的开头，你可以删除最近看到的99个推，必须是你自己发的）。");
        }

        int rollerId;
        try {
            rollerId = Integer.parseInt(arguments.get(0));
        } catch (NumberFormatException e) {
            return Arrays.asList("——没有指定要删除的推编号（编号在每个推的开头，你可以删除最近看到的99个推，必须是你自己发的）。");
        }

        Status status = user.getStatusByRollerId(rollerId);

        if (status == null) {
            return Arrays.asList("——没有找到指定编号的推（编号在每个推的开头，你可以删除最近看到的99个推，必须是你自己发的）。");
        }

        if (!status.getUser().getScreenName().equals(twitter.getScreenName())) {
            return Arrays.asList("——不能删除别人发的推。");
        }

        twitter.destroyStatus(status.getId());
        return Arrays.asList("——指定的推已被删除。被删除的推：\n" + StatusFormatter.formatStatus(twitterUser, status, status.getId()));        
    }
}
